Crate http_serde
source ·Expand description
§Serde support for the HTTP crate
Adds ability to serialize and deserialize types from the HTTP crate.
If you want to serialize Request
or Response
, use into_parts()
and serialize their parts, and then rebuild them using their Builder
.
§Usage
You must annotate fields with #[serde(with = "http_serde::<appropriate method>")]
.
#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
#[serde(with = "http_serde::method")]
method: Method,
#[serde(with = "http_serde::status_code")]
status: StatusCode,
#[serde(with = "http_serde::uri")]
uri: Uri,
#[serde(with = "http_serde::header_map")]
headers: HeaderMap,
#[serde(with = "http_serde::authority")]
authority: Authority,
}
There’s also support for the types wrapped in an Option
. To use it, change the with
attribute prefix from http_serde::
to http_serde::option::
.
#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
#[serde(with = "http_serde::option::header_map")]
// ^^^^^^
optional_headers: Option<HeaderMap>,
}
§Requirements
- Rust 1.56 or later.
Re-exports§
pub use http;
Modules§
- For
http::uri::Authority
- For
http::HeaderMap
- For
http::Method
- Serializers and deserializers for types wrapped in
Option
. - For
http::StatusCode
- For
http::Uri
- For
http::Version